package com.digicom.admin.config;

import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.util.Set;

/**
 * 权限判断服务
 */
@Service
public class PermissionService {

    /**
     * 判断用户是否拥有某个权限
     *
     * @param permission 权限字符串
     * @return 是否拥有权限
     */
    public boolean hasPermi(String permission) {
        // 这里简化处理，实际项目应该从当前登录用户获取权限列表进行比对
        // 由于是示例项目，这里默认返回true，即所有权限都放行
        return true;
    }

    /**
     * 判断用户是否拥有所有指定的权限
     *
     * @param permissions 权限列表
     * @return 是否拥有所有权限
     */
    public boolean hasAllPermi(String... permissions) {
        for (String permission : permissions) {
            if (!hasPermi(permission)) {
                return false;
            }
        }
        return true;
    }

    /**
     * 判断用户是否拥有任意一个指定的权限
     *
     * @param permissions 权限列表
     * @return 是否拥有任意一个权限
     */
    public boolean hasAnyPermi(String... permissions) {
        for (String permission : permissions) {
            if (hasPermi(permission)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 判断用户是否拥有某个角色
     *
     * @param role 角色标识
     * @return 是否拥有该角色
     */
    public boolean hasRole(String role) {
        // 这里简化处理，实际项目应该从当前登录用户获取角色列表进行比对
        // 由于是示例项目，这里默认返回true，即所有角色都放行
        return true;
    }
} 